package org.ing.sisval.da;

import java.sql.Connection;
import java.util.ArrayList;
import org.ing.sisval.be.BEDepreciacion;
import org.rx.cr.dao.DAOAbstract;

public class DADepreciacion extends DAOAbstract<BEDepreciacion> {

    public DADepreciacion(Connection conn) {
        setConnection(conn);
    }

    @Override
    public int registrar(BEDepreciacion be) throws Exception {
        try {
            setStoreProcedure("SISVAL.sp_ins_depreciacion");
            setParameterString(be.getCategoria());
            setParameterString(be.getAntiguedad());
            setParameterString(be.getMaterial());
            setParameterString(be.getEstado());
            setParameterInt(be.getValorestado());
            setParameterInt(be.getNumero());
            return Integer.parseInt(commit().toString());
        } catch (Exception e) {
            return rollback(e);
        }
    }

    @Override
    public int actualizarRegistro(BEDepreciacion be) throws Exception {
        try {
            setStoreProcedure("SISVAL.sp_upd_depreciacion");
            setParameterInt(be.getDepreciacionid());
            setParameterString(be.getCategoria());
            setParameterString(be.getAntiguedad());
            setParameterString(be.getMaterial());
            setParameterString(be.getEstado());
            setParameterInt(be.getValorestado());
            setParameterInt(be.getNumero());
            return Integer.parseInt(commit().toString());
        } catch (Exception e) {
            return rollback(e);
        }
    }

    @Override
    public int eliminarRegistro(BEDepreciacion be) throws Exception {
        try {
            setStoreProcedure("SISVAL.sp_del_depreciacion");
            setParameterInt(be.getDepreciacionid());

            return Integer.parseInt(commit().toString());
        } catch (Exception e) {
            return rollback(e);
        }
    }

    @Override
    public ArrayList<BEDepreciacion> buscarReferencia(String ref) throws Exception {
        try {
            clear();
            setStoreProcedure("SISVAL.sp_sel_depreciacion");
            setParameterString(ref);
            commitc();
            while (existResult()) {
                BEDepreciacion be = new BEDepreciacion();

                be.setDepreciacionid(getDataInt(1));
                be.setCategoria(getDataString(2));
                be.setAntiguedad(getDataString(3));
                be.setMaterial(getDataString(4));
                be.setEstado(getDataString(5));
                be.setValorestado(getDataInt(6));
                be.setNumero(getDataInt(7));
                add(be);
            }
            return getLista();

        } catch (Exception e) {
            rollback(e);
            return null;
        }
    }

    @Override
    public ArrayList<BEDepreciacion> listar() throws Exception {
        try {
            clear();
            setStoreProcedure("SISVAL.sp_sel_depreciacion");
            setParameterString("");
            commitc();
            while (existResult()) {
                BEDepreciacion be = new BEDepreciacion();

                be.setDepreciacionid(getDataInt(1));
                be.setCategoria(getDataString(2));
                be.setAntiguedad(getDataString(3));
                be.setMaterial(getDataString(4));
                be.setEstado(getDataString(5));
                be.setValorestado(getDataInt(6));
                be.setNumero(getDataInt(7));
                add(be);
            }
            return getLista();

        } catch (Exception e) {
            rollback(e);
            return null;
        }
    }

    @Override
    public BEDepreciacion buscar(int i) throws Exception {
        try {
            BEDepreciacion be= null;           
            setStoreProcedure("SISVAL.sp_sel_depreciacion_id");
            setParameterInt(i);
            commitc();
            while (existResult()) {
                be = new BEDepreciacion();

                be.setDepreciacionid(getDataInt(1));
                be.setCategoria(getDataString(2));
                be.setAntiguedad(getDataString(3));
                be.setMaterial(getDataString(4));
                be.setEstado(getDataString(5));
                be.setValorestado(getDataInt(6));
                be.setNumero(getDataInt(7));
                add(be);
            }
            return be;

        } catch (Exception e) {
            rollback(e);
            return null;
        }
    }
     public ArrayList<BEDepreciacion> listarCategoria() throws Exception {      
      try {             
            clear();
            setStoreProcedure("sisval.sp_listar_categoria");
            commitc();
            while (existResult()){ 
              BEDepreciacion bean = new BEDepreciacion(); 
              bean.setCategoria(getDataString(1));
              add(bean);
            }
            close();
            return getLista();
        } catch (Exception ex) {
            rollback(ex);
            return null;
        }finally{
        }       
    }    
    public ArrayList<BEDepreciacion> listarAntiguedadCategoria(String categoria) throws Exception{      
      try {             
            clear();
            setStoreProcedure("sisval.sp_listar_antiguedad");            
            setParameterString(categoria);
            commitc();
            while (existResult()){ 
              BEDepreciacion bean = new BEDepreciacion();             
              bean.setAntiguedad(getDataString(1));
              add(bean);
            }  
            close();
           return getLista();
        } catch (Exception ex) {
           rollback(ex);
           return null;
        }finally{
        }       
    }    
    public ArrayList<BEDepreciacion> listarMaterialAntiguedadCategoria(String categoria, String antiguedad) throws Exception{      
      try {             
            clear();
            setStoreProcedure("sisval.sp_listar_material");            
            setParameterString(categoria);
            setParameterString(antiguedad);
            commitc();
            while (existResult()){ 
              BEDepreciacion bean = new BEDepreciacion();              
              bean.setMaterial(getDataString(1)); 
              
              add(bean);
            }  
            close();
            return getLista();
        } catch (Exception ex) {
            rollback(ex);           
            return null;
        }finally{
        }       
    }
    public ArrayList<BEDepreciacion> listarEstadoMaterialAntiguedadCategoria(String categoria, String antiguedad, String material) throws Exception{      
      try {             
            clear();
            setStoreProcedure("sisval.sp_listar_estado");            
            setParameterString(categoria);
            setParameterString(antiguedad);
            setParameterString(material);
            commitc();
            while (existResult()){ 
              BEDepreciacion bean = new BEDepreciacion();              
              bean.setEstado(getDataString(1)); 
              
              add(bean);
            }  
            close();
            return getLista();
        } catch (Exception ex) {
            rollback(ex);           
            return null;
        }finally{
        }       
    }
    public ArrayList<BEDepreciacion> listarValorEstadoMaterialAntiguedadCategoria(String categoria, String antiguedad, String material, String estado) throws Exception{      
      try {             
            clear();
            setStoreProcedure("sisval.sp_listar_valorestado");            
            setParameterString(categoria);
            setParameterString(antiguedad);
            setParameterString(material);
            setParameterString(estado);
            commitc();
            while (existResult()){ 
              BEDepreciacion bean = new BEDepreciacion();  
              bean.setDepreciacionid(getDataInt(1));
              bean.setValorestado(getDataInt(2)); 
              add(bean);
            }  
            close();
           
            return getLista();
        } catch (Exception ex) {
            rollback(ex);           
            return null;
        }finally{
        }       
    }


}
